package com.wd.live.view;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;


import com.huawei.hms.mlplugin.card.icr.cn.MLCnIcrCapture;
import com.huawei.hms.mlplugin.card.icr.cn.MLCnIcrCaptureConfig;
import com.huawei.hms.mlplugin.card.icr.cn.MLCnIcrCaptureFactory;
import com.huawei.hms.mlplugin.card.icr.cn.MLCnIcrCaptureResult;
import com.wd.live.R;
import com.wd.live.base.BaseActivity;
import com.wd.live.base.BaseViewModel;
import com.wd.live.databinding.ActivityUserSMBinding;
import com.wd.live.model.utils.ToastFormat;

public class UserSMActivity extends BaseActivity<BaseViewModel, ActivityUserSMBinding> {

    private Boolean isbot=false;
    private String name;
    private String sex;
    private String idCard;
    @Override
    protected void initData() {
        databind.shangchuan.setEnabled(false);
        databind.ee.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startCaptureActivity(idCallback, true, false);
            }
        });
        databind.rr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startCaptureActivity(idCallback, false, false);
            }
        });
    }


    @Override
    protected int initLayout() {
        return R.layout.activity_user_s_m;
    }

    @Override
    public void onChanged(Object o) {

    }

    private MLCnIcrCapture.CallBack idCallback = new MLCnIcrCapture.CallBack() {
        @Override
        public void onSuccess(MLCnIcrCaptureResult idCardResult) {
            databind.tt2.setVisibility(View.GONE);
            databind.shiXiang2.setVisibility(View.GONE);
            // 识别成功处理。
            databind.shangchuan.setBackgroundResource(R.drawable.finishsm_btn);
            databind.shangchuan.setEnabled(true);
            ToastFormat.setText(""+idCardResult);
            ToastFormat.show();
            if(isbot){
                databind.rr.setScaleType(ImageView.ScaleType.FIT_XY);
                databind.rr.setImageBitmap(idCardResult.cardBitmap);
                isbot=false;
            }else{
                databind.ee.setScaleType(ImageView.ScaleType.FIT_XY);
                name=idCardResult.name;
                sex=idCardResult.sex;
                idCard=idCardResult.idNum;
                databind.ee.setImageBitmap(idCardResult.cardBitmap);
                isbot=true;
            }
            databind.shangchuan.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(UserSMActivity.this, RenZhengActivity.class);
                    intent.putExtra("actualName",name);
                    intent.putExtra("sex",sex);
                    intent.putExtra("idNumber",idCard);
                    startActivity(intent);
                }
            });
        }

        @Override
        public void onCanceled() {
            // 用户取消处理。
        }

        // 识别不到任何文字信息或识别过程发生系统异常的回调方法。
        // retCode：错误码。
        // bitmap：检测失败的身份证图片。
        @Override
        public void onFailure(int retCode, Bitmap bitmap) {
            // 识别异常处理。
        }

        @Override
        public void onDenied() {
            // 相机不支持等场景处理。
        }

    };
    private void startCaptureActivity(MLCnIcrCapture.CallBack callback, boolean isFront, boolean isRemote) {
        MLCnIcrCaptureConfig config = new MLCnIcrCaptureConfig.Factory()
                // 设置识别身份证的正反面。
                // true：正面。
                // false：反面。
                .setFront(isFront)
                // 设置是否使用云侧能力进行识别。
                // true：云侧。
                // false：端侧。
                .setRemote(isRemote)
                .create();
        MLCnIcrCapture icrCapture = MLCnIcrCaptureFactory.getInstance().getIcrCapture(config);
        icrCapture.capture(callback, this);
    }


}